﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using Data;

namespace Business
{

    public class Palco
    {
        private int idPalco;
        private String localidade;
        private String nome;
        private String descricao;
        private String categoria;
        private String rua;
        private String codPostal;
        private double coordLat;
        private double coordLon;
        private int status;
        private DataPalco dataLayer;



        public Palco()
        {
            this.idPalco = -1;
            this.localidade = "";
            this.nome = "";
            this.descricao = "";
            this.categoria = "";
            this.rua = "";
            this.codPostal = "";
            this.coordLat = -1;
            this.coordLon = -1;
            this.status = -1;
            this.dataLayer = new DataPalco();
        }

        public Palco(String nome, String descricao, String categoria, String rua, String codPostal, String localidade, double coordLat, double coordLon)
        {

            this.idPalco = -1;
            this.localidade = localidade;
            this.nome = nome;
            this.descricao = descricao;
            this.categoria = categoria;
            this.rua = rua;
            this.codPostal = codPostal;
            this.coordLat = coordLat;
            this.coordLon = coordLon;
            this.status = -1;
            this.dataLayer = new DataPalco();

        }

        // Get's

        public int getIDPalco() { return this.idPalco; }
        public String getLocalidade() { return this.localidade; }
        public String getNomePalco() { return this.nome; }
        public String getDescricaoPalco() { return this.descricao; }
        public String getCategoria() { return this.categoria; }
        public String getRua() { return this.rua; }
        public String getCodPostal() { return this.codPostal; }
        public double getCoordLat() { return this.coordLat; }
        public double getCoordLon() { return this.coordLon; }
        public int getStatus() { return this.status; }


        // Set's

        public void setIDPalco(int idPalco) { this.idPalco = idPalco; }
        public void setLocalidade(String localidade) { this.localidade = localidade; }
        public void setNomePalco(String nome) { this.nome = nome; }
        public void setDescricaoPalco(String descricao) { this.descricao = descricao; }
        public void setCategoria(String categoria) { this.categoria = categoria; }
        public void setRua(String rua) { this.rua = rua; }
        public void setCodPostal(String codPostal) { this.codPostal = codPostal; }
        public void setCoordLat(double coordLat) { this.coordLat = coordLat; }
        public void setCoordLon(double coordLon) { this.coordLon = coordLon; }
        public void setStatus(int status) { this.status = status; }


        // Métodos da camada de negócio relativos aos palcos

        public Palco getPalcoByID(int palcoID)
        {
            return dataLayer.getPalcoByID(palcoID);
        }

        public int insertPalco()
        {
            
            this.idPalco = dataLayer.insertPalco(this);
            this.status = 1;
            return this.status;
        }

        public bool updatePalco()
        {
            return dataLayer.updatePalco(this);
        }

        public bool setEstadoPalco(int novoEstado)
        {
            return dataLayer.setEstadoPalco(this.getIDPalco(), novoEstado);
        }


        public List<String> getCategoriasPalco()
        {
            return this.dataLayer.getCategoriasPalco();
        }


        // Processamento de informação relevante para o Google Maps

    }

}